package com.ruoyi.system.service;

import com.ruoyi.system.dto.ConstructionWarningQueryDTO;
import com.ruoyi.system.vo.ConstructionWarningOverviewVO;
import com.ruoyi.system.vo.ConstructionWarningVO;

import java.util.List;

/**
 * 施工预警服务接口
 * 
 * @author ruoyi
 * @since 2024-01-01
 */
public interface IConstructionWarningService {

    /**
     * 获取预警总览数据
     * @param queryDTO 查询条件
     * @return 预警总览数据
     */
    ConstructionWarningOverviewVO getWarningOverview(ConstructionWarningQueryDTO queryDTO);

    /**
     * 分页查询预警列表
     * @param queryDTO 查询条件
     * @return 预警列表
     */
    List<ConstructionWarningVO> getWarningList(ConstructionWarningQueryDTO queryDTO);

    /**
     * 获取预警详情
     * @param projectId 项目ID
     * @param warningType 预警类型
     * @param businessId 业务ID
     * @return 预警详情
     */
    ConstructionWarningVO getWarningDetail(Long projectId, String warningType, Long businessId);

    /**
     * 获取预警统计数据
     * @return 预警统计数据
     */
    List<ConstructionWarningOverviewVO.WarningStatisticsCardVO> getWarningStatistics();

    /**
     * 获取预警趋势数据
     * @param warningType 预警类型（可选）
     * @return 预警趋势数据
     */
    List<ConstructionWarningOverviewVO.WarningTrendDataVO> getWarningTrendData(String warningType);

    /**
     * 获取预警类型选项
     * @return 预警类型选项列表
     */
    List<Object> getWarningTypeOptions();

    /**
     * 获取预警等级选项
     * @return 预警等级选项列表
     */
    List<Object> getWarningLevelOptions();

    /**
     * 获取处理状态选项
     * @return 处理状态选项列表
     */
    List<Object> getStatusOptions();
}
